package com.sanchunhui.psc.utils

import com.google.gson.JsonArray
import com.google.gson.JsonDeserializationContext
import com.google.gson.JsonDeserializer
import com.google.gson.JsonElement
import com.sanchunhui.psc.data.protocol.ResponseInfo
import org.json.JSONArray
import org.json.JSONObject
import java.lang.reflect.Type

/**
 * @Author zyx
 * @Date 2021/6/9-17:30
 * @Dscribe
 */
class JSONResultType : JsonDeserializer<ResponseInfo> {
    override fun deserialize(json: JsonElement, typeOfT: Type, context: JsonDeserializationContext): ResponseInfo {
        val result = if (json.isJsonObject) {
            val obj = json.asJsonObject
            var token : String = ""
            var msg : String = ""
            var datas : JSONObject = JSONObject()
            val code = obj.get("code").asInt
            if (obj.get("msg") != null) {
                msg = obj.get("msg").asString
            }
            if (obj.get("token") != null) {
                token = obj.get("token").asString
            }
            if (obj.getAsJsonObject("data") != null) {
                datas = JSONObject(obj.getAsJsonObject("data").toString())
            }

            ResponseInfo(code, msg, token, datas)
        } else {
            ResponseInfo()
        }
        return result
    }
}
